package com.design.paystyle.service;

import cn.hutool.core.util.StrUtil;
import com.design.paystyle.strategy.PayStrategy;
import com.design.paystyle.strategy.PayStrategyFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

/**
 * 支付服务
 *
 * @author by liuxin
 * @version 0.1
 * @date 2021-11-17 16:19
 */
@Slf4j
@Service
public class PayService {

    /**
     * 支付服务
     *
     * @param payCode 支付方式
     * @return 支付结果
     */
    public String toPay(String payCode) {
        log.info("支付方式：{}", payCode);
        if (StrUtil.isEmpty(payCode)) {
            return "payCode不能为空";
        }
        PayStrategy payStrategy = PayStrategyFactory.getPayStrategy(payCode);
        log.info("支付方式：{}", payStrategy);
        if (payStrategy == null) {
            return "没有该种支付方式";
        }

        return payStrategy.payStyle();
    }
}
